package com.he.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.he.dto.CityRankingDTO;
import com.he.entity.ExpressDeliveryData;
import com.he.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author a'abc
 * @description 针对表【express_delivery_data】的数据库操作Mapper
 * @createDate 2025-07-29 11:46:00
 * @Entity com.he.entity.ExpressDeliveryData
 */
public interface ExpressDeliveryDataMapper extends BaseMapper<ExpressDeliveryData> {

    Integer getCount();

    CurrentVolumeVO currentVolume();

    List<EntryVolumeRatioVO> entryVolumeRatioList();

    List<GuangdongDataVO> guangdongDataShipping(@Param("type") Integer type, @Param("company") String company, @Param("packageType") Integer packageType);

    List<GuangdongDataVO> guangdongDataDelivery(@Param("type") Integer type, @Param("company") String company, @Param("packageType") Integer packageType);

    DispatchDataVO dispatchData(@Param("type") Integer type, @Param("company") String company, @Param("packageType") Integer packageType);

    List<CityRankingDTO> provinceRankingShipping(String company, Integer packageType);

    List<CityRankingDTO> provinceRankingDelivery(String company, Integer packageType);

    List<LogisticsFlowVO> getFlows(@Param("cityId") Integer cityId, 
                                   @Param("startDate") String startDate, 
                                   @Param("endDate") String endDate, 
                                   @Param("companyId") Integer companyId, 
                                   @Param("expressType") Integer expressType);
                                   
    List<LogisticsFlowVO> getShippingFlows(@Param("cityId") Integer cityId, 
                                           @Param("startDate") String startDate, 
                                           @Param("endDate") String endDate, 
                                           @Param("companyId") Integer companyId, 
                                           @Param("expressType") Integer expressType);

}